export default function getVersion() {
  if (process.env.NODE_ENV === 'development') {
    console.log('测试时，不需要检查版本')
    return
  }

  windowAddVersion()

  let currentUrl = '/'
  if (process.env.NODE_ENV === 'test') {
    currentUrl = '/srxboys-vite-vue3/' // 看测试服务器，部署的 文件夹/目录
  }

  let version = currentUrl + 'v/version.js'
  // 108000 = 60 * 60(1分钟) * 30 = 30分钟更新一次
  const dateTime = parseInt(new Date().getTime() / 108000)
  // 这个千万不要注释掉，否则不能保证实时刷新最新接口
  version += '?v=' + dateTime
  // console.log('verson->url=>', version)
  const versionScript = document.createElement('script')
  versionScript.src = version
  const s = document.getElementsByTagName('script')[0]
  s.parentNode.insertBefore(versionScript, s)
}

function windowAddVersion() {
  const fn = window._rx_getVersion
  if (!(fn && typeof fn === 'function')) {
    const pathname = window.location.pathname
    // console.log('pathname=', pathname)
    let page = pathname.split('/')[1]
    if (!page) page = '/'
    // console.log('page=', page)
    /* eslint-disable-next-line */
    window._rx_getVersion = version => {
      // 是否 开启 cookies
      const inBrowser = typeof window !== 'undefined'
      const navigator = inBrowser && window.navigator.cookieEnabled
      if (!navigator) {
        // 没有开启，就不 自动刷新，拉取最新 js
        return
      }
      const key = 'page_' + page
      if ((localStorage[key] && version !== localStorage[key]) || (window[key] && version !== window[key])) {
        setTimeout(() => {
          console.log('将要刷新')
          location.reload() // 刷新页面
        }, 1000)
      }
      localStorage[key] = version // 保存 以便下次使用判断
      window[key] = version // 保存 以便下次使用判断
    }
  }
}